<

非推奨の API は v3.3 以降に削除されました

まとめ

Flutter に準拠して、非推奨ポリシー、 以降にサポートが終了した非推奨の API 3.3 安定版リリースは削除されました。

影響を受けるすべての API はこれにコンパイルされています 移行を支援する主要な情報源。あクイックリファレンスシートも利用可能です。

変更点

このセクションでは、影響を受けるクラスごとに非推奨をリストします。

RenderUnconstrainedBox

Flutter Fix によるサポート: いいえ

RenderUnconstrainedBoxv2.1 で非推奨になりました。 使用RenderConstraintsTransformBoxその代わり。

両方の軸に制約がない場合は、ConstraintsTransformBox.unconstrainedconstraintsTransform

もしもRenderUnconstrainedBox.constrainedAxis事前に設定されていた、 それぞれ置き換えます:

  • どこconstrainedAxis以前はAxis.horizontal、 設定constraintsTransformConstraintsTransformBox.widthUnconstrained
  • どこconstrainedAxis以前はAxis.vertical、 設定constraintsTransformConstraintsTransformBox.heightUnconstrained

この変更により、さらにいくつかのタイプの制約を導入できるようになりました。 による変革ConstraintsTransformBox。旧バージョンのその他のパラメータ API は新しい API と互換性があります。

移行ガイド

移行前のコード:

// Unconstrained
final RenderUnconstrainedBox unconstrained = RenderUnconstrainedBox(
  textDirection: TextDirection.ltr,
  child: RenderConstrainedBox(
    additionalConstraints: const BoxConstraints.tightFor(height: 200.0),
  ),
  alignment: Alignment.center,
);

// Constrained in horizontal axis
final RenderUnconstrainedBox unconstrained = RenderUnconstrainedBox(
  constrainedAxis: Axis.horizontal,
  textDirection: TextDirection.ltr,
  child: RenderConstrainedBox(
    additionalConstraints: const BoxConstraints.tightFor(width: 200.0, height: 200.0),
  ),
  alignment: Alignment.center,
);

// Constrained in vertical axis
final RenderUnconstrainedBox unconstrained = RenderUnconstrainedBox(
  constrainedAxis: Axis.vertical,
  textDirection: TextDirection.ltr,
  child: RenderFlex(
    direction: Axis.vertical,
    textDirection: TextDirection.ltr,
    children: <RenderBox>[flexible],
  ),
  alignment: Alignment.center,
);

移行後のコード:

// Unconstrained
final RenderConstraintsTransformBox unconstrained = RenderConstraintsTransformBox(
  constraintsTransform: ConstraintsTransformBox.unconstrained,
  textDirection: TextDirection.ltr,
  child: RenderConstrainedBox(
    additionalConstraints: const BoxConstraints.tightFor(height: 200.0),
  ),
  alignment: Alignment.center,
);

// Constrained in horizontal axis
final RenderConstraintsTransformBox unconstrained = RenderConstraintsTransformBox(
  constraintsTransform: ConstraintsTransformBox.widthUnconstrained,
  textDirection: TextDirection.ltr,
  child: RenderConstrainedBox(
    additionalConstraints: const BoxConstraints.tightFor(width: 200.0, height: 200.0),
  ),
  alignment: Alignment.center,
);

// Constrained in vertical axis
final RenderConstraintsTransformBox unconstrained = RenderConstraintsTransformBox(
  constraintsTransform: ConstraintsTransformBox.widthUnconstrained,
  textDirection: TextDirection.ltr,
  child: RenderFlex(
    direction: Axis.vertical,
    textDirection: TextDirection.ltr,
    children: <RenderBox>[flexible],
  ),
  alignment: Alignment.center,
);

参考文献

API ドキュメント:

  • RenderConstraintsTransformBox
  • ConstraintsTransformBox

関連する PR:

  • で廃止されました#78673
  • に削除されました#111711

DragAnchorDraggable.dragAnchor&LongPressDraggable.dragAnchor

Flutter Fixによるサポート: はい

列挙型DragAnchor、およびその用途Draggable.dragAnchor&LongPressDraggable.dragAnchorv2.1 で非推奨になりました。 使用dragAnchorStrategyその代わり。

この変更により、使用時のドラッグ可能なウィジェットのより正確なフィードバックが可能になりました。 他のウィジェットと組み合わせてStackInteractiveViewer

移行ガイド

移行前のコード:

Draggable draggable = Draggable();
draggable = Draggable(dragAnchor: DragAnchor.child);
draggable = Draggable(dragAnchor: DragAnchor.pointer);

LongPressDraggable longPressDraggable = LongPressDraggable();
longPressDraggable = LongPressDraggable(dragAnchor: DragAnchor.child);
longPressDraggable = LongPressDraggable(dragAnchor: DragAnchor.pointer);

移行後のコード:

Draggable draggable = Draggable();
draggable = Draggable(dragAnchorStrategy: childDragAnchorStrategy);
draggable = Draggable(dragAnchorStrategy: pointerDragAnchorStrategy);

LongPressDraggable longPressDraggable = LongPressDraggable();
longPressDraggable = LongPressDraggable(dragAnchorStrategy: childDragAnchorStrategy);
longPressDraggable = LongPressDraggable(dragAnchorStrategy: pointerDragAnchorStrategy);

参考文献

API ドキュメント:

  • Draggable
  • LongPressDraggable
  • DragAnchorStrategy

関連する問題:

  • #73143

関連する PR:

  • で廃止されました#79160
  • に削除されました#111713

ScrollBehavior.buildViewportChrome

Flutter Fixによるサポート: はい

方法ScrollBehavior.buildViewportChromev2.1 で非推奨になりました。

この方法は、Scrollableオーバースクロールを適用するウィジェット インジケーターなどGlowingOverscrollIndicator、デフォルトでは適切な プラットフォーム。デフォルトのデコレータがさらに追加されると、次のようになります。Scrollbarそれぞれ 代わりに、置き換えるための個別のメソッドに分割されました。buildViewportChrome

これにより、拡張クラスで特定のデコレータのみをオーバーライドできるようになります。buildScrollbarまたbuildOverscrollIndicator書き直す必要はなく、 どちらかを維持するためにコードを作成します。

移行ガイド

詳細な移行ガイドが利用可能

移行前のコード:

final ScrollBehavior scrollBehavior = ScrollBehavior();
scrollBehavior.buildViewportChrome(context, child, axisDirection);

移行後のコード:

final ScrollBehavior scrollBehavior = ScrollBehavior();
scrollBehavior.buildOverscrollIndicator(context, child, axisDirection);

参考文献

設計書:

API ドキュメント:

  • ScrollBehavior

関連する問題:

  • スクロールバーは、Web とデスクトップで常に表示され、デフォルトでインスタンス化される必要があります。

関連する PR:

  • #76739
  • で廃止されました#78588
  • に削除されました#111715

タイムライン

安定版リリース: 3.7

0b97efb6-73aa-4f4d-993d​​-7109e3b167b6